網(wǎng)站制作中會(huì)遇到很多問(wèn)題,比如我們今天說(shuō)到的未設(shè)置對(duì)象變量或 With block 變量錯(cuò)誤,這是怎么回事呢?
小編分析了一下,ASP利用VB轉(zhuǎn)換為Dll的時(shí)候出現(xiàn),原因可能有以下:
1:對(duì)象沒有實(shí)例化,就被引用了。
2:在2000下。請(qǐng)查看是否有引用。
COM+ Services Type Library(以前的版本中好像是MTS組件)還有一種就是沒有把組件注冊(cè)到com+組件管理器中,而導(dǎo)致setcomplete和setabort無(wú)法使用報(bào)錯(cuò)未設(shè)置對(duì)象變量或 With block 變量,如果是這個(gè)錯(cuò)誤的話(未設(shè)置對(duì)象變量或 With block 變量 錯(cuò)誤),就應(yīng)該是沒有用 set 對(duì)象 或者用 new,還有一種不太容易發(fā)現(xiàn)的錯(cuò)誤Dim Rs As Adodb.Recordset。
然后在function或sub中,對(duì)rs進(jìn)行事例話后,如:
Set Rs = New ADODB.Recordset
.....
Set Rs = Nothing
此時(shí)你可能對(duì)這個(gè)過(guò)程或函數(shù)進(jìn)行重復(fù)使用,如遞歸,就會(huì)發(fā)現(xiàn)出現(xiàn)上述錯(cuò)誤。
原因是在函數(shù)中已經(jīng)把事例對(duì)象給Nothing了,在Set 的時(shí)候,Rs不存在,導(dǎo)致出錯(cuò),此時(shí)候.應(yīng)該避免全局變量的時(shí)候,在過(guò)程或函數(shù)中使用Dim Rs As New ADODB.Recordset肯定是沒有初始化一個(gè)對(duì)象。
如果在Dll中引用了類型庫(kù),那么在調(diào)用Dll的應(yīng)用中也要引用該類型庫(kù),否則將提示變量的With域沒有定義的錯(cuò)誤。如果你存在網(wǎng)站制作難題,歡迎咨詢成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè),我們竭誠(chéng)為您服務(wù)。